{
 "cells": [
  {
   "cell_type": "code",
   "id": "initial_id",
   "metadata": {
    "collapsed": true,
    "ExecuteTime": {
     "end_time": "2025-03-20T10:35:50.716985Z",
     "start_time": "2025-03-20T10:35:41.679343Z"
    }
   },
   "source": [
    "import gym\n",
    "import torch\n",
    "import torch.nn.functional as F\n",
    "import torch.nn as nn\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sympy import discriminant\n",
    "from tqdm import tqdm\n",
    "import random\n",
    "import rl_utils"
   ],
   "outputs": [
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
      "\u001B[1;31mKeyboardInterrupt\u001B[0m                         Traceback (most recent call last)",
      "Cell \u001B[1;32mIn[1], line 3\u001B[0m\n\u001B[0;32m      1\u001B[0m \u001B[38;5;28;01mimport\u001B[39;00m \u001B[38;5;21;01mgym\u001B[39;00m\n\u001B[0;32m      2\u001B[0m \u001B[38;5;28;01mimport\u001B[39;00m \u001B[38;5;21;01mtorch\u001B[39;00m\n\u001B[1;32m----> 3\u001B[0m \u001B[38;5;28;01mimport\u001B[39;00m \u001B[38;5;21;01mtorch\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mnn\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mfunctional\u001B[39;00m \u001B[38;5;28;01mas\u001B[39;00m \u001B[38;5;21;01mF\u001B[39;00m\n\u001B[0;32m      4\u001B[0m \u001B[38;5;28;01mimport\u001B[39;00m \u001B[38;5;21;01mtorch\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mnn\u001B[39;00m \u001B[38;5;28;01mas\u001B[39;00m \u001B[38;5;21;01mnn\u001B[39;00m\n\u001B[0;32m      5\u001B[0m \u001B[38;5;28;01mimport\u001B[39;00m \u001B[38;5;21;01mnumpy\u001B[39;00m \u001B[38;5;28;01mas\u001B[39;00m \u001B[38;5;21;01mnp\u001B[39;00m\n",
      "Cell \u001B[1;32mIn[1], line 3\u001B[0m\n\u001B[0;32m      1\u001B[0m \u001B[38;5;28;01mimport\u001B[39;00m \u001B[38;5;21;01mgym\u001B[39;00m\n\u001B[0;32m      2\u001B[0m \u001B[38;5;28;01mimport\u001B[39;00m \u001B[38;5;21;01mtorch\u001B[39;00m\n\u001B[1;32m----> 3\u001B[0m \u001B[38;5;28;01mimport\u001B[39;00m \u001B[38;5;21;01mtorch\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mnn\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mfunctional\u001B[39;00m \u001B[38;5;28;01mas\u001B[39;00m \u001B[38;5;21;01mF\u001B[39;00m\n\u001B[0;32m      4\u001B[0m \u001B[38;5;28;01mimport\u001B[39;00m \u001B[38;5;21;01mtorch\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mnn\u001B[39;00m \u001B[38;5;28;01mas\u001B[39;00m \u001B[38;5;21;01mnn\u001B[39;00m\n\u001B[0;32m      5\u001B[0m \u001B[38;5;28;01mimport\u001B[39;00m \u001B[38;5;21;01mnumpy\u001B[39;00m \u001B[38;5;28;01mas\u001B[39;00m \u001B[38;5;21;01mnp\u001B[39;00m\n",
      "File \u001B[1;32m_pydevd_bundle\\\\pydevd_cython_win32_38_64.pyx:1187\u001B[0m, in \u001B[0;36m_pydevd_bundle.pydevd_cython_win32_38_64.SafeCallWrapper.__call__\u001B[1;34m()\u001B[0m\n",
      "File \u001B[1;32m_pydevd_bundle\\\\pydevd_cython_win32_38_64.pyx:627\u001B[0m, in \u001B[0;36m_pydevd_bundle.pydevd_cython_win32_38_64.PyDBFrame.trace_dispatch\u001B[1;34m()\u001B[0m\n",
      "File \u001B[1;32m_pydevd_bundle\\\\pydevd_cython_win32_38_64.pyx:1103\u001B[0m, in \u001B[0;36m_pydevd_bundle.pydevd_cython_win32_38_64.PyDBFrame.trace_dispatch\u001B[1;34m()\u001B[0m\n",
      "File \u001B[1;32m_pydevd_bundle\\\\pydevd_cython_win32_38_64.pyx:1061\u001B[0m, in \u001B[0;36m_pydevd_bundle.pydevd_cython_win32_38_64.PyDBFrame.trace_dispatch\u001B[1;34m()\u001B[0m\n",
      "File \u001B[1;32mD:\\IDE\\PyCharm 2024.3.4\\plugins\\python\\helpers-pro\\jupyter_debug\\pydev_jupyter_plugin.py:169\u001B[0m, in \u001B[0;36mstop\u001B[1;34m(plugin, pydb, frame, event, args, stop_info, arg, step_cmd)\u001B[0m\n\u001B[0;32m    167\u001B[0m     frame \u001B[38;5;241m=\u001B[39m suspend_jupyter(main_debugger, thread, frame, step_cmd)\n\u001B[0;32m    168\u001B[0m     \u001B[38;5;28;01mif\u001B[39;00m frame:\n\u001B[1;32m--> 169\u001B[0m         \u001B[43mmain_debugger\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mdo_wait_suspend\u001B[49m\u001B[43m(\u001B[49m\u001B[43mthread\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mframe\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mevent\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43marg\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m    170\u001B[0m         \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28;01mTrue\u001B[39;00m\n\u001B[0;32m    171\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28;01mFalse\u001B[39;00m\n",
      "File \u001B[1;32mD:\\IDE\\PyCharm 2024.3.4\\plugins\\python-ce\\helpers\\pydev\\pydevd.py:1220\u001B[0m, in \u001B[0;36mPyDB.do_wait_suspend\u001B[1;34m(self, thread, frame, event, arg, send_suspend_message, is_unhandled_exception)\u001B[0m\n\u001B[0;32m   1217\u001B[0m         from_this_thread\u001B[38;5;241m.\u001B[39mappend(frame_id)\n\u001B[0;32m   1219\u001B[0m \u001B[38;5;28;01mwith\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_threads_suspended_single_notification\u001B[38;5;241m.\u001B[39mnotify_thread_suspended(thread_id, stop_reason):\n\u001B[1;32m-> 1220\u001B[0m     \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_do_wait_suspend\u001B[49m\u001B[43m(\u001B[49m\u001B[43mthread\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mframe\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mevent\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43marg\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43msuspend_type\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mfrom_this_thread\u001B[49m\u001B[43m)\u001B[49m\n",
      "File \u001B[1;32mD:\\IDE\\PyCharm 2024.3.4\\plugins\\python-ce\\helpers\\pydev\\pydevd.py:1235\u001B[0m, in \u001B[0;36mPyDB._do_wait_suspend\u001B[1;34m(self, thread, frame, event, arg, suspend_type, from_this_thread)\u001B[0m\n\u001B[0;32m   1232\u001B[0m             \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_call_mpl_hook()\n\u001B[0;32m   1234\u001B[0m         \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mprocess_internal_commands()\n\u001B[1;32m-> 1235\u001B[0m         \u001B[43mtime\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43msleep\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m0.01\u001B[39;49m\u001B[43m)\u001B[49m\n\u001B[0;32m   1237\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mcancel_async_evaluation(get_current_thread_id(thread), \u001B[38;5;28mstr\u001B[39m(\u001B[38;5;28mid\u001B[39m(frame)))\n\u001B[0;32m   1239\u001B[0m \u001B[38;5;66;03m# process any stepping instructions\u001B[39;00m\n",
      "\u001B[1;31mKeyboardInterrupt\u001B[0m: "
     ]
    }
   ],
   "execution_count": 1
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-20T08:08:53.047434Z",
     "start_time": "2025-03-20T08:08:53.033915Z"
    }
   },
   "cell_type": "code",
   "source": [
    "class PolicyNet(torch.nn.Module):\n",
    "    def __init__(self,state_dim,hidden_dim,action_dim):\n",
    "        super(PolicyNet,self).__init__()\n",
    "        self.fc1 = nn.Linear(state_dim,hidden_dim)\n",
    "        self.fc2 = nn.Linear(hidden_dim,action_dim)\n",
    "    def forward(self, x):\n",
    "        x = F.relu(self.fc1(x))\n",
    "        return F.softmax(self.fc2(x),dim=1)\n",
    "\n",
    "class ValueNet(torch.nn.Module):\n",
    "    def __init__(self,state_dim,hidden_dim):\n",
    "        super(ValueNet,self).__init__()\n",
    "        self.fc1 = nn.Linear(state_dim,hidden_dim)\n",
    "        self.fc2 = nn.Linear(hidden_dim,1)\n",
    "    def forward(self,x):\n",
    "        x = F.relu(self.fc1(x))\n",
    "        return self.fc2(x)\n",
    "class PPO:\n",
    "    '''PPO算法，采用截断方式'''\n",
    "    def __init__(self,state_dim,hidden_dim,action_dim,actor_lr,critic_lr,lmbda,epochs,eps,gamma,device):\n",
    "        self.actor = PolicyNet(state_dim,hidden_dim,action_dim).to(device)\n",
    "        self.critic = ValueNet(state_dim,hidden_dim).to(device)\n",
    "        self.actor_optimizer = torch.optim.Adam(self.actor.parameters(),lr=actor_lr)\n",
    "        self.critic_optimizer = torch.optim.Adam(self.critic.parameters(),lr=critic_lr)\n",
    "        self.gamma = gamma\n",
    "        self.lmbda = lmbda\n",
    "        self.eps = eps # PPO中截断范围的参数\n",
    "        self.epochs = epochs # 一条序列的数据用于训练轮数\n",
    "        self.device = device\n",
    "\n",
    "    def take_action(self,state):\n",
    "        state = torch.tensor([state],dtype=torch.float).to(self.device)\n",
    "        probs = self.actor(state)\n",
    "        action_dist = torch.distributions.Categorical(probs)\n",
    "        action = action_dist.sample()\n",
    "        return action.item()\n",
    "\n",
    "    def update(self,transition_dict):\n",
    "        states = torch.tensor(transition_dict['states'],dtype=torch.float).to(self.device)\n",
    "        actions = torch.tensor(transition_dict['actions']).view(-1,1).to(self.device)\n",
    "        rewards = torch.tensor(transition_dict['rewards'],dtype=torch.float).view(-1,1).to(self.device)\n",
    "        next_states = torch.tensor(transition_dict['next_states'],dtype=torch.float).to(self.device)\n",
    "        dones = torch.tensor(transition_dict['dones'],dtype=torch.float).view(-1,1).to(self.device)\n",
    "\n",
    "        td_target = rewards + self.gamma * self.critic(next_states) * (1-dones)\n",
    "        td_delta = td_target - self.critic(states)\n",
    "        advantages = rl_utils.compute_advantage(self.gamma,self.lmbda,td_delta.cpu()).to(self.device)\n",
    "        old_log_probs = torch.log(self.actor(states).gather(1,actions)).detach()\n",
    "\n",
    "        for _ in range(self.epochs):\n",
    "            log_probs = torch.log(self.actor(states).gather(1,actions))\n",
    "            ratio = torch.exp(log_probs - old_log_probs)\n",
    "            surr1 = advantages * ratio\n",
    "            surr2 = torch.clamp(ratio,1-self.eps,1+self.eps)*advantages # 截断\n",
    "            actor_loss = torch.mean(-torch.min(surr1,surr2))  # PPO损失函数\n",
    "            critic_loss = torch.mean(F.mse_loss(self.critic(states),td_target.detach()))\n",
    "            self.actor_optimizer.zero_grad()\n",
    "            self.critic_optimizer.zero_grad()\n",
    "            actor_loss.backward()\n",
    "            critic_loss.backward()\n",
    "            self.actor_optimizer.step()\n",
    "            self.critic_optimizer.step()"
   ],
   "id": "c454b585e5308d06",
   "outputs": [],
   "execution_count": 27
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-20T08:09:12.736628Z",
     "start_time": "2025-03-20T08:08:55.659403Z"
    }
   },
   "cell_type": "code",
   "source": [
    "actor_lr = 1e-3\n",
    "critic_lr = 1e-2\n",
    "num_episodes = 250\n",
    "hidden_dim = 128\n",
    "gamma = 0.98\n",
    "lmbda = 0.95\n",
    "epochs = 10\n",
    "eps = 0.2\n",
    "device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n",
    "\n",
    "env_name = 'CartPole-v0'\n",
    "env = gym.make(env_name)\n",
    "\n",
    "env.seed(0)\n",
    "torch.manual_seed(0)\n",
    "\n",
    "state_dim = env.observation_space.shape[0]\n",
    "action_dim = env.action_space.n\n",
    "ppo_agent = PPO(state_dim,hidden_dim,action_dim,actor_lr,critic_lr,lmbda,epochs,eps,gamma,device)\n",
    "return_list = rl_utils.train_on_policy_agent(env,ppo_agent,num_episodes)"
   ],
   "id": "ac8bb5291331e41d",
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Iteration 0: 100%|██████████| 25/25 [00:00<00:00, 25.50it/s, episode=20, return=74.900]\n",
      "Iteration 1: 100%|██████████| 25/25 [00:01<00:00, 15.32it/s, episode=45, return=176.300]\n",
      "Iteration 2: 100%|██████████| 25/25 [00:01<00:00, 14.01it/s, episode=70, return=179.400]\n",
      "Iteration 3: 100%|██████████| 25/25 [00:01<00:00, 14.15it/s, episode=95, return=179.200]\n",
      "Iteration 4: 100%|██████████| 25/25 [00:01<00:00, 14.08it/s, episode=120, return=193.100]\n",
      "Iteration 5: 100%|██████████| 25/25 [00:01<00:00, 12.58it/s, episode=145, return=183.400]\n",
      "Iteration 6: 100%|██████████| 25/25 [00:01<00:00, 14.43it/s, episode=170, return=174.500]\n",
      "Iteration 7: 100%|██████████| 25/25 [00:01<00:00, 13.52it/s, episode=195, return=200.000]\n",
      "Iteration 8: 100%|██████████| 25/25 [00:01<00:00, 14.08it/s, episode=220, return=200.000]\n",
      "Iteration 9: 100%|██████████| 25/25 [00:01<00:00, 14.22it/s, episode=245, return=200.000]\n"
     ]
    }
   ],
   "execution_count": 28
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-20T08:09:15.114244Z",
     "start_time": "2025-03-20T08:09:15.055458Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 预先通过PPO算法训练出一个表现良好的专家模型，再利用专家模型生成专家数据\n",
    "# 接下来开始生成专家数据，只生成一条轨迹，并从中采样30个状态动作对(s,a)\n",
    "\n",
    "def sample_expert_data(n_episode):\n",
    "    states = []\n",
    "    actions = []\n",
    "    for episode in range(n_episode):\n",
    "        state = env.reset()\n",
    "        done = False\n",
    "        while not done:\n",
    "            action = ppo_agent.take_action(state)\n",
    "            states.append(state)\n",
    "            actions.append(action)\n",
    "            next_state,reward,done,_=env.step(action)\n",
    "            state = next_state\n",
    "    return np.array(states),np.array(actions)\n",
    "\n",
    "env.seed(0)\n",
    "torch.manual_seed(0)\n",
    "random.seed(0)\n",
    "n_episode = 1\n",
    "expert_s,expert_a = sample_expert_data(n_episode)\n",
    "\n",
    "n_samples = 30\n",
    "random_index = random.sample(range(expert_s.shape[0]),n_samples)\n",
    "expert_s = expert_s[random_index]\n",
    "expert_a = expert_a[random_index]"
   ],
   "id": "2860dd8e19e732b6",
   "outputs": [],
   "execution_count": 29
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-20T08:10:16.167354Z",
     "start_time": "2025-03-20T08:10:16.157373Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# BC行为克隆\n",
    "class BehaviorClone:\n",
    "    def __init__(self,state_dim,hidden_dim,action_dim,lr):\n",
    "        self.policy = PolicyNet(state_dim,hidden_dim,action_dim).to(device)\n",
    "        self.optimizer = torch.optim.Adam(self.policy.parameters(),lr=lr)\n",
    "\n",
    "    def learn(self,states,actions):\n",
    "        states = torch.tensor(states,dtype=torch.float).to(device)\n",
    "        actions = torch.tensor(actions,dtype=torch.long).view(-1,1).to(device)\n",
    "        log_probs = torch.log(self.policy(states).gather(1,actions))\n",
    "        bc_loss = torch.mean(-log_probs)  # 最大似然估计\n",
    "        self.optimizer.zero_grad()\n",
    "        bc_loss.backward()\n",
    "        self.optimizer.step()\n",
    "\n",
    "    def take_action(self,state):\n",
    "        state = torch.tensor([state],dtype=torch.float).to(device)\n",
    "        probs = self.policy(state)\n",
    "        action_dict = torch.distributions.Categorical(probs)\n",
    "        action = action_dict.sample()\n",
    "        return action.item()"
   ],
   "id": "995c37b3b55e8e6c",
   "outputs": [],
   "execution_count": 35
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-20T08:13:22.419322Z",
     "start_time": "2025-03-20T08:10:16.841131Z"
    }
   },
   "cell_type": "code",
   "source": [
    "def test_agent(agent,env,n_episode):\n",
    "    return_list = []\n",
    "    for episode in range(n_episode):\n",
    "        episode_return = 0\n",
    "        state = env.reset()\n",
    "        done = False\n",
    "        while not done:\n",
    "            action = agent.take_action(state)\n",
    "            next_state,reward,done,_=env.step(action)\n",
    "            state = next_state\n",
    "            episode_return += reward\n",
    "        return_list.append(episode_return)\n",
    "    return np.mean(return_list)\n",
    "\n",
    "env.seed(0)\n",
    "torch.manual_seed(0)\n",
    "np.random.seed(0)\n",
    "\n",
    "lr=1e-3\n",
    "bc_agent = BehaviorClone(state_dim,hidden_dim,action_dim,lr)\n",
    "n_iterations = 1000\n",
    "batch_size = 64\n",
    "test_returns = []\n",
    "\n",
    "with tqdm(total=n_iterations,desc=\"进度条\") as pbar:\n",
    "    for i in range(n_iterations):\n",
    "        sample_indices = np.random.randint(0,expert_s.shape[0],batch_size)\n",
    "        bc_agent.learn(expert_s[sample_indices],expert_a[sample_indices])\n",
    "        current_return = test_agent(bc_agent,env,5)\n",
    "        test_returns.append(current_return)\n",
    "        if (i+1) % 10 == 0:\n",
    "            pbar.set_postfix({'return': '%.3f' % np.mean(test_returns[-10:])})\n",
    "        pbar.update(1)"
   ],
   "id": "f0d88b0312cab4d6",
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "进度条: 100%|██████████| 1000/1000 [03:05<00:00,  5.39it/s, return=193.380]\n"
     ]
    }
   ],
   "execution_count": 36
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-20T08:14:43.230980Z",
     "start_time": "2025-03-20T08:14:43.018082Z"
    }
   },
   "cell_type": "code",
   "source": [
    "iteration_list = list(range(len(test_returns)))\n",
    "plt.plot(iteration_list,test_returns)\n",
    "plt.xlabel('Iterations')\n",
    "plt.ylabel('Returns')\n",
    "plt.title('BC on {}'.format(env_name))\n",
    "plt.show()"
   ],
   "id": "eeb4f2957f62858e",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHHCAYAAABZbpmkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACSdElEQVR4nO3dd3wUZf4H8M/sbrIppBBIhVCld6mhCYLSRFRsiAqCct6BCvz0lDvlwFPhbId62E4FGxZOhJNTFJAi0nsRkF4TehohZXfn90fYzczszO7s7G6yWT7v1yt32ZnZmWcnmPnm+3yf5xFEURRBREREFKZMVd0AIiIiomBisENERERhjcEOERERhTUGO0RERBTWGOwQERFRWGOwQ0RERGGNwQ4RERGFNQY7REREFNYY7BAREVFYY7BDRFSJBEHAtGnTqroZRNcUBjtE1djcuXMhCILsKyUlBX379sUPP/yg+p4zZ87gySefRPPmzRETE4PY2Fh07NgRL7zwAnJzcyv3A3ixcuVK3HHHHUhLS0NkZCRSUlIwdOhQLFiwIKDXOX36NKZNm4bt27e77Rs9erTs/sbHx6Ndu3Z47bXXUFJSEtB2BNvatWvRs2dPxMTEIC0tDY8//jgKCwurullEQWep6gYQkf+ef/55NGzYEKIo4syZM5g7dy4GDx6M7777DrfccovruE2bNmHw4MEoLCzE/fffj44dOwIANm/ejJkzZ2L16tX46aefqupjyPztb3/D888/jyZNmuAPf/gD6tevjwsXLuD777/H8OHD8fnnn+O+++4LyLVOnz6N6dOno0GDBmjfvr3bfqvVig8++AAAkJubi2+++QZPPvkkNm3ahC+//DIgbQi27du3o1+/fmjRogVef/11nDx5Eq+++ioOHDigGRgThQ2RiKqtOXPmiADETZs2ybZfvHhRjIiIEO+77z7XtkuXLol16tQRU1NTxb1797qdKycnR/z73/8e9DbrMX/+fBGAeOedd4qlpaVu+5csWSJ+9913fl+nrKxMLCkpETdt2iQCEOfMmeN2zKhRo8TY2FjZNrvdLnbq1EkEIJ46dcqnawIQ//a3v/nRamMGDRokpqeni3l5ea5t//73v0UA4o8//ljp7SGqTOzGIgpDiYmJiI6OhsVSkbx97733cOrUKbz++uto3ry523tSU1Px7LPPej33zz//jF69eiE2NhaJiYkYNmwY9u7dKztm2rRpEAQBBw8exOjRo5GYmIiEhAQ89NBDKCoq8nqN5557DklJSfjoo48QERHhtn/AgAGujFVpaSmmTp2Kjh07IiEhAbGxsejVqxdWrFghe8/Ro0chCAJeffVVzJo1C40bN4bVasXbb7+Nzp07AwAeeughV3fV3LlzNdtnMpnQp08f13kB4OzZsxg7dixSU1MRFRWFdu3a4eOPP/b6WQHg1KlTGDNmDFJTU2G1WtGqVSt89NFHXt93yy23oFGjRqr7srKy0KlTJwBAfn4+li5divvvvx/x8fGuYx588EHUqFEDX3/9ta52ElVX7MYiCgN5eXk4f/48RFHE2bNn8dZbb7m6qpz++9//Ijo6Gnfeeafh6yxbtgyDBg1Co0aNMG3aNFy5cgVvvfUWevToga1bt6JBgway4++++240bNgQM2bMwNatW/HBBx8gJSUF//jHPzSvceDAAezbtw9jxoxBXFyc1zbl5+fjgw8+wIgRI/DII4+goKAAH374IQYMGICNGze6dUvNmTMHxcXFGDduHKxWK26//XYUFBRg6tSpGDduHHr16gUA6N69u8frHjp0CABQq1YtXLlyBX369MHBgwcxYcIENGzYEPPnz8fo0aORm5uLJ554QvM8Z86cQbdu3SAIAiZMmIDk5GT88MMPGDt2LPLz8zFx4kTN995zzz148MEHsWnTJlfABgDHjh3D+vXr8corrwAAdu3aBZvN5gp+nCIjI9G+fXts27bN42clqvaqOrVERMY5u7GUX1arVZw7d67s2Jo1a4rt2rXz63rt27cXU1JSxAsXLri27dixQzSZTOKDDz7o2va3v/1NBCCOGTNG9v7bb79drFWrlsdrLFq0SAQg/vOf/9TVJpvNJpaUlMi2Xbp0SUxNTZVd/8iRIyIAMT4+Xjx79qzseD3dWOfOnRPPnTsnHjx4UHzppZdEQRDEtm3biqIoirNmzRIBiJ999pnrfaWlpWJWVpZYo0YNMT8/37Udim6ssWPHiunp6eL58+dl17333nvFhIQEsaioSPOz5+XliVarVfy///s/2faXX35ZFARBPHbsmCiKFd2Cq1evdjvHXXfdJaalpWlegygcsBuLKAzMnj0bS5cuxdKlS/HZZ5+hb9++ePjhh2WjlvLz83VlSrRkZ2dj+/btGD16NJKSklzb27Zti5tuugnff/+923seffRR2etevXrhwoULyM/P17yOc5/etprNZkRGRgIAHA4HLl686MpibN261e344cOHIzk5Wde5nS5fvozk5GQkJyfjuuuuw1/+8hdkZWXh22+/BQB8//33SEtLw4gRI1zviYiIcI12WrVqlep5RVHEN998g6FDh0IURZw/f971NWDAAOTl5al+Bqf4+HgMGjQIX3/9NURRdG3/6quv0K1bN9SrVw8AcOXKFQDlhdZKUVFRrv1E4YrdWERhoEuXLrIuihEjRqBDhw6YMGECbrnlFkRGRiI+Ph4FBQWGr3Hs2DEAQLNmzdz2tWjRAj/++CMuX76M2NhY13bnw9apZs2aAIBLly7JakeknNt9aevHH3+M1157Dfv27UNZWZlre8OGDd2OVdvmTVRUFL777jsA5QFDw4YNUbduXdf+Y8eOoUmTJjCZ5H8/tmjRwrVfzblz55Cbm4v3338f77//vuoxZ8+eBQDk5OTItickJCA6Ohr33HMPFi5ciHXr1qF79+44dOgQtmzZglmzZrmOjY6OBgDVofLFxcWu/UThisEOURgymUzo27cv3njjDRw4cACtWrVC8+bNsX37dpSWlroyIcFmNptVt0uzEErO4uldu3bpusZnn32G0aNH47bbbsNTTz2FlJQUmM1mzJgxw1VXI2XkwW42m9G/f3+f3+eNw+EAANx///0YNWqU6jFt27YFAKSnp8u2z5kzB6NHj8bQoUMRExODr7/+Gt27d8fXX38Nk8mEu+66y3Ws873Z2dlu58/OzkZGRkZAPg9RqGKwQxSmbDYbALgmjRs6dCjWrVuHb775Rtbdolf9+vUBAPv373fbt2/fPtSuXVuW1TGqadOmaNasGRYtWoQ33ngDNWrU8Hj8f/7zHzRq1AgLFiyAIAiu7X/72990X1P6PiPq16+PnTt3wuFwyLI7+/btc+1Xk5ycjLi4ONjtdq/B1NKlS2WvW7VqBQCIjY3FLbfcgvnz5+P111/HV199hV69eskCmNatW8NisWDz5s24++67XdtLS0uxfft22TaicMSaHaIwVFZWhp9++gmRkZGurpRHH30U6enp+L//+z/8/vvvbu85e/YsXnjhBc1zpqeno3379vj4449lMy3v3r0bP/30EwYPHhyw9k+fPh0XLlzAww8/7ArapH766ScsXrwYQEX2SJot2rBhA9atW6f7es4gzegM0oMHD0ZOTg6++uor1zabzYa33noLNWrUwA033KD6PrPZjOHDh+Obb77B7t273fafO3fO9X3//v1lX9JMzz333IPTp0/jgw8+wI4dO3DPPffIzpOQkID+/fvjs88+k3UPfvrppygsLJRlgYjCETM7RGHghx9+cGURzp49i3nz5uHAgQN45plnXDUwNWvWxLfffovBgwejffv2shmUt27dii+++AJZWVker/PKK69g0KBByMrKwtixY11DzxMSEgK63tM999yDXbt24cUXX8S2bdswYsQI1wzKS5YswfLlyzFv3jwA5XPNLFiwALfffjuGDBmCI0eO4N1330XLli11L4XQuHFjJCYm4t1330VcXBxiY2PRtWtX3fU948aNw3vvvYfRo0djy5YtaNCgAf7zn//g119/xaxZszwWW8+cORMrVqxA165d8cgjj6Bly5a4ePEitm7dimXLluHixYterz948GDExcXhySefdAVQSi+++CK6d++OG264AePGjcPJkyfx2muv4eabb8bAgQN1fU6iaqtKx4IRkV/Uhp5HRUWJ7du3F9955x3R4XC4vef06dPipEmTxKZNm4pRUVFiTEyM2LFjR/HFF1+Uza6rZdmyZWKPHj3E6OhoMT4+Xhw6dKj422+/yY5xDj0/d+6canuPHDmi6/MtX75cHDZsmJiSkiJaLBYxOTlZHDp0qLho0SLXMQ6HQ3zppZfE+vXri1arVezQoYO4ePFicdSoUWL9+vVdxzmHnr/yyiuq11q0aJHYsmVL0WKxyIahq82grObMmTPiQw89JNauXVuMjIwU27RpozqUHSozKJ85c0YcP368mJmZKUZERIhpaWliv379xPfff9/rdZ1GjhwpAhD79++vecwvv/widu/eXYyKihKTk5PF8ePHy4bFE4UrQRQ9VAoSERERVXOs2SEiIqKwxmCHiIiIwhqDHSIiIgprDHaIiIgorDHYISIiorDGYIeIiIjCGicVRPn6NKdPn0ZcXJzf08YTERFR5RBFEQUFBcjIyHBbiFeKwQ6A06dPIzMzs6qbQURERAacOHECdevW1dzPYAdwTeV+4sQJ19T6REREFNry8/ORmZnpcUkWgMEOgIoVj+Pj4xnsEBERVTPeSlBYoExERERhjcEOERERhTUGO0RERBTWGOwQERFRWGOwQ0RERGGN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plULAwYMEOfMmSPu3r1b3L59uzh48GCxXr16YmFhoeuYRx99VMzMzBSXL18ubt68WezWrZvYvXt3136bzSa2bt1a7N+/v7ht2zbx+++/F2vXri1OmTKlKj5SyNu4caPYoEEDsW3btuITTzzh2s77HBgXL14U69evL44ePVrcsGGDePjwYfHHH38UDx486Dpm5syZYkJCgrhw4UJxx44d4q233io2bNhQvHLliuuYgQMHiu3atRPXr18v/vLLL+J1110njhgxoio+Ukh68cUXxVq1aomLFy8Wjxw5Is6fP1+sUaOG+MYbb7iO4X025vvvvxf/+te/igsWLBABiN9++61sfyDua15enpiamiqOHDlS3L17t/jFF1+I0dHR4nvvvedX2xnsBEmXLl3E8ePHu17b7XYxIyNDnDFjRhW2qvo6e/asCEBctWqVKIqimJubK0ZERIjz5893HbN3714RgLhu3TpRFMv/wzSZTGJOTo7rmHfeeUeMj48XS0pKKvcDhLiCggKxSZMm4tKlS8UbbrjBFezwPgfO008/Lfbs2VNzv8PhENPS0sRXXnnFtS03N1e0Wq3iF198IYqiKP72228iAHHTpk2uY3744QdREATx1KlTwWt8NTJkyBBxzJgxsm133HGHOHLkSFEUeZ8DRRnsBOq+vv3222LNmjVlvzuefvppsVmzZn61l91YQVBaWootW7agf//+rm0mkwn9+/fHunXrqrBl1VdeXh4AICkpCQCwZcsWlJWVye5x8+bNUa9ePdc9XrduHdq0aYPU1FTXMQMGDEB+fj727NlTia0PfePHj8eQIUNk9xPgfQ6k//73v+jUqRPuuusupKSkoEOHDvj3v//t2n/kyBHk5OTI7nVCQgK6du0qu9eJiYno1KmT65j+/fvDZDJhw4YNlfdhQlj37t2xfPly/P777wCAHTt2YM2aNRg0aBAA3udgCdR9XbduHXr37o3IyEjXMQMGDMD+/ftx6dIlw+3jQqBBcP78edjtdtkvfwBITU3Fvn37qqhV1ZfD4cDEiRPRo0cPtG7dGgCQk5ODyMhIJCYmyo5NTU1FTk6O6xi1n4FzH5X78ssvsXXrVmzatMltH+9z4Bw+fBjvvPMOJk+ejL/85S/YtGkTHn/8cURGRmLUqFGue6V2L6X3OiUlRbbfYrEgKSmJ9/qqZ555Bvn5+WjevDnMZjPsdjtefPFFjBw5EgB4n4MkUPc1JycHDRs2dDuHc1/NmjUNtY/BDoW88ePHY/fu3VizZk1VNyXsnDhxAk888QSWLl2KqKioqm5OWHM4HOjUqRNeeuklAECHDh2we/duvPvuuxg1alQVty58fP311/j8888xb948tGrVCtu3b8fEiRORkZHB+3wNYzdWENSuXRtms9ltxMqZM2eQlpZWRa2qniZMmIDFixdjxYoVqFu3rmt7WloaSktLkZubKzteeo/T0tJUfwbOfVTeTXX27Flcf/31sFgssFgsWLVqFd58801YLBakpqbyPgdIeno6WrZsKdvWokULHD9+HEDFvfL0eyMtLQ1nz56V7bfZbLh48SLv9VVPPfUUnnnmGdx7771o06YNHnjgAUyaNAkzZswAwPscLIG6r8H6fcJgJwgiIyPRsWNHLF++3LXN4XBg+fLlyMrKqsKWVR+iKGLChAn49ttv8fPPP7ulNTt27IiIiAjZPd6/fz+OHz/uusdZWVnYtWuX7D+upUuXIj4+3u2hc63q168fdu3ahe3bt7u+OnXqhJEjR7q+530OjB49erhNn/D777+jfv36AICGDRsiLS1Ndq/z8/OxYcMG2b3Ozc3Fli1bXMf8/PPPcDgc6Nq1ayV8itBXVFQEk0n+aDObzXA4HAB4n4MlUPc1KysLq1evRllZmeuYpUuXolmzZoa7sABw6HmwfPnll6LVahXnzp0r/vbbb+K4cePExMRE2YgV0vbHP/5RTEhIEFeuXClmZ2e7voqKilzHPProo2K9evXEn3/+Wdy8ebOYlZUlZmVlufY7h0TffPPN4vbt28UlS5aIycnJHBLthXQ0lijyPgfKxo0bRYvFIr744ovigQMHxM8//1yMiYkRP/vsM9cxM2fOFBMTE8VFixaJO3fuFIcNG6Y6dLdDhw7ihg0bxDVr1ohNmjS55odES40aNUqsU6eOa+j5ggULxNq1a4t//vOfXcfwPhtTUFAgbtu2Tdy2bZsIQHz99dfFbdu2iceOHRNFMTD3NTc3V0xNTRUfeOABcffu3eKXX34pxsTEcOh5KHvrrbfEevXqiZGRkWKXLl3E9evXV3WTqg0Aql9z5sxxHXPlyhXxT3/6k1izZk0xJiZGvP3228Xs7GzZeY4ePSoOGjRIjI6OFmvXri3+3//9n1hWVlbJn6Z6UQY7vM+B891334mtW7cWrVar2Lx5c/H999+X7Xc4HOJzzz0npqamilarVezXr5+4f/9+2TEXLlwQR4wYIdaoUUOMj48XH3roIbGgoKAyP0ZIy8/PF5944gmxXr16YlRUlNioUSPxr3/9q2woM++zMStWrFD9vTxq1ChRFAN3X3fs2CH27NlTtFqtYp06dcSZM2f63XZBFCXTShIRERGFGdbsEBERUVhjsENERERhjcEOERERhTUGO0RERBTWGOwQERFRWGOwQ0RERGGNwQ4RERGFNQY7RHRNatCgAWbNmlXVzSCiSsBgh4iCbvTo0bjtttsAAH369MHEiRMr7dpz585FYmKi2/ZNmzZh3LhxldYOIqo6lqpuABGREaWlpYiMjDT8/uTk5AC2hohCGTM7RFRpRo8ejVWrVuGNN96AIAgQBAFHjx4FAOzevRuDBg1CjRo1kJqaigceeADnz593vbdPnz6YMGECJk6ciNq1a2PAgAEAgNdffx1t2rRBbGwsMjMz8ac//QmFhYUAgJUrV+Khhx5CXl6e63rTpk0D4N6Ndfz4cQwbNgw1atRAfHw87r77bpw5c8a1f9q0aWjfvj0+/fRTNGjQAAkJCbj33ntRUFDgOuY///kP2rRpg+joaNSqVQv9+/fH5cuXg3Q3iUgvBjtEVGneeOMNZGVl4ZFHHkF2djays7ORmZmJ3Nxc3HjjjejQoQM2b96MJUuW4MyZM7j77rtl7//4448RGRmJX3/9Fe+++y4AwGQy4c0338SePXvw8ccf4+eff8af//xnAED37t0xa9YsxMfHu6735JNPurXL4XBg2LBhuHjxIlatWoWlS5fi8OHDuOeee2THHTp0CAsXLsTixYuxePFirFq1CjNnzgQAZGdnY8SIERgzZgz27t2LlStX4o477gCXHySqeuzGIqJKk5CQgMjISMTExCAtLc21/V//+hc6dOiAl156ybXto48+QmZmJn7//Xc0bdoUANCkSRO8/PLLsnNK638aNGiAF154AY8++ijefvttREZGIiEhAYIgyK6ntHz5cuzatQtHjhxBZmYmAOCTTz5Bq1atsGnTJnTu3BlAeVA0d+5cxMXFAQAeeOABLF++HC+++CKys7Nhs9lwxx13oH79+gCANm3a+HG3iChQmNkhoiq3Y8cOrFixAjVq1HB9NW/eHEB5NsWpY8eObu9dtmwZ+vXrhzp16iAuLg4PPPAALly4gKKiIt3X37t3LzIzM12BDgC0bNkSiYmJ2Lt3r2tbgwYNXIEOAKSnp+Ps2bMAgHbt2qFfv35o06YN7rrrLvz73//GpUuX9N8EIgoaBjtEVOUKCwsxdOhQbN++XfZ14MAB9O7d23VcbGys7H1Hjx7FLbfcgrZt2+Kbb77Bli1bMHv2bADlBcyBFhERIXstCAIcDgcAwGw2Y+nSpfjhhx/QsmVLvPXWW2jWrBmOHDkS8HYQkW8Y7BBRpYqMjITdbpdtu/7667Fnzx40aNAA1113nexLGeBIbdmyBQ6HA6+99hq6deuGpk2b4vTp016vp9SiRQucOHECJ06ccG377bffkJubi5YtW+r+bIIgoEePHpg+fTq2bduGyMhIfPvtt7rfT0TBwWCHiCpVgwYNsGHDBhw9ehTnz5+Hw+HA+PHjcfHiRYwYMQKbNm3CoUOH8OOPP+Khhx7yGKhcd911KCsrw1tvvYXDhw/j008/dRUuS69XWFiI5cuX4/z586rdW/3790ebNm0wcuRIbN26FRs3bsSDDz6IG264AZ06ddL1uTZs2ICXXnoJmzdvxvHjx7FgwQKcO3cOLVq08O0GEVHAMdghokr15JNPwmw2o2XLlkhOTsbx48eRkZGBX3/9FXa7HTfffDPatGmDiRMnIjExESaT9q+pdu3a4fXXX8c//vEPtG7dGp9//jlmzJghO6Z79+549NFHcc899yA5OdmtwBkoz8gsWrQINWvWRO/evdG/f380atQIX331le7PFR8fj9WrV2Pw4MFo2rQpnn32Wbz22msYNGiQ/ptDREEhiBwXSURERGGMmR0iIiIKawx2iIiIKKwx2CEiIqKwxmCHiIiIwhqDHSIiIgprDHaIiIgorDHYISIiorDGYIeIiIjCGoMdIiIiCmsMdoiIiCisMdghIiKisMZgh4iIiMLa/wOrM7Kq+XUBYgAAAABJRU5ErkJggg=="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 37
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-20T08:18:52.963150Z",
     "start_time": "2025-03-20T08:18:52.951408Z"
    }
   },
   "cell_type": "code",
   "source": [
    "class Discriminator(nn.Module):\n",
    "    '''判别器模型，输入一个状态动作对，输出一个概率标量'''\n",
    "    def __init__(self,state_dim,hidden_dim,action_dim):\n",
    "        super(Discriminator,self).__init__()\n",
    "        self.fc1 = nn.Linear(state_dim+action_dim,hidden_dim)\n",
    "        self.fc2 = nn.Linear(hidden_dim,1)\n",
    "    def forward(self,x,a):\n",
    "        cat = torch.cat([x,a],dim=1)\n",
    "        x = F.relu(self.fc1(cat))\n",
    "        return torch.sigmoid(self.fc2(x))"
   ],
   "id": "e80e4d0aae077e5b",
   "outputs": [],
   "execution_count": 38
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-20T09:06:40.958619Z",
     "start_time": "2025-03-20T09:06:40.947589Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# GAIL:在每一轮迭代中，GAIL中的策略和环境进行交互，采样新的状态动作对，基于专家数据和策略新采样的数据，首先训练判别器模型，然后将判别器的输出转换为策略的奖励信号，指导策略用PPO算法做训练\n",
    "class GAIL:\n",
    "    def __init__(self,agent,state_dim,action_dim,hidden_dim,lr_d,):\n",
    "        self.discriminator = Discriminator(state_dim,hidden_dim,action_dim).to(device)\n",
    "        self.discriminator_optimizer = torch.optim.Adam(self.discriminator.parameters(),lr=lr_d)\n",
    "        self.agent = agent\n",
    "\n",
    "    def learn(self,expert_s,expert_a,agent_s,agent_a,next_s,dones):\n",
    "        expert_states = torch.tensor(expert_s,dtype=torch.float).to(device)\n",
    "        expert_actions = torch.tensor(expert_a,dtype=torch.long).to(device)\n",
    "        agent_states = torch.tensor(agent_s,dtype=torch.float).to(device)\n",
    "        agent_actions = torch.tensor(agent_a,dtype=torch.long).to(device)\n",
    "\n",
    "        expert_actions = F.one_hot(expert_actions,num_classes=2).float()\n",
    "        agent_actions = F.one_hot(agent_actions,num_classes=2).float()\n",
    "\n",
    "        expert_prob = self.discriminator(expert_states,expert_actions)\n",
    "        agent_prob = self.discriminator(agent_states,agent_actions)\n",
    "        discriminator_loss = nn.BCELoss()(agent_prob,torch.ones_like(agent_prob)) + nn.BCELoss()(expert_prob,torch.zeros_like(expert_prob))\n",
    "        self.discriminator_optimizer.zero_grad()\n",
    "        discriminator_loss.backward()\n",
    "        self.discriminator_optimizer.step()\n",
    "\n",
    "        rewards = -torch.log(agent_prob).detach().cpu().numpy()\n",
    "        transition_dict = {'states': agent_s,'actions': agent_a,'rewards': rewards, 'next_states': next_s,'dones': dones}\n",
    "        self.agent.update(transition_dict)"
   ],
   "id": "5b32a61072a931c7",
   "outputs": [],
   "execution_count": 50
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-20T09:07:17.242041Z",
     "start_time": "2025-03-20T09:06:42.189633Z"
    }
   },
   "cell_type": "code",
   "source": [
    "env.seed(0)\n",
    "torch.manual_seed(0)\n",
    "\n",
    "lr_d = 1e-3\n",
    "agent=PPO(state_dim,hidden_dim,action_dim,actor_lr,critic_lr,lmbda,epochs,eps,gamma,device)\n",
    "gail = GAIL(agent,state_dim,action_dim,hidden_dim,lr_d)\n",
    "n_episode = 500\n",
    "return_list = []\n",
    "\n",
    "with tqdm(total=n_episode,desc='进度条') as pbar:\n",
    "    for i in range(n_episode):\n",
    "        episode_return = 0\n",
    "        state = env.reset()\n",
    "        done = False\n",
    "        state_list = []\n",
    "        action_list = []\n",
    "        next_state_list = []\n",
    "        done_list = []\n",
    "        while not done:\n",
    "            action = agent.take_action(state)\n",
    "            next_state,reward,done,_=env.step(action)\n",
    "            state_list.append(state)\n",
    "            action_list.append(action)\n",
    "            next_state_list.append(next_state)\n",
    "            done_list.append(done)\n",
    "\n",
    "            state = next_state\n",
    "            episode_return += reward\n",
    "        return_list.append(episode_return)\n",
    "        gail.learn(expert_s,expert_a,state_list,action_list,next_state_list,done_list)\n",
    "        if (i+1) % 10 == 0:\n",
    "            pbar.set_postfix({'return': '%.3f' % np.mean(return_list[-10:])})\n",
    "        pbar.update(1)"
   ],
   "id": "46ade653e74fae63",
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "进度条: 100%|██████████| 500/500 [00:35<00:00, 14.27it/s, return=200.000]\n"
     ]
    }
   ],
   "execution_count": 51
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-03-20T09:07:51.608066Z",
     "start_time": "2025-03-20T09:07:51.457703Z"
    }
   },
   "cell_type": "code",
   "source": [
    "iteration_list = list(range(len(return_list)))\n",
    "plt.plot(iteration_list,return_list)\n",
    "plt.xlabel('Iterations')\n",
    "plt.ylabel('Returns')\n",
    "plt.title('GAIL on {}'.format(env_name))\n",
    "plt.show()"
   ],
   "id": "6c4b0f29499ff1f4",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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HIhVq1bhD3/4g+JYbyC1efNmjBw50rd98+bN8Hg8IQWVRCJjzg6RwO666y4kJSVh0qRJOHjwYMB+/1aQ/fv3Y926dbj22mtx9dVXB/xNnDgRu3btanQEUCSKiorgcrnwxBNPKMr17LPPoqKiApdeemlMzpObm4vJkyfj/fffV53h1+PxYO7cub5JBePi4gKu05NPPom6urqQz9m8eXMACCtA8oqLi8OwYcPwxhtvKFriDh48iMWLF2PgwIG+rjl//fr1Q8eOHfG3v/1NtTvzxx9/BFDf/VdUVKT4S0xMBAA4nU5cffXVePPNN/Hiiy+itrY2YEbtSy65BBkZGZg/f75i+/z585GUlBSz947ILGzZIRJY586dsXjxYowbNw5du3bF+PHjkZ+fD0mSUFpaisWLF8PpdPrmlFm8eDEkScIVV1yh+nwjR45EfHw8Fi1a1Ohw9tdeew3ffPNNwPYJEyaotkS0bt0aM2bMwKxZszBixAhcccUV2LlzJ5566imcd955AblF0Zg7dy52796NO+64A6+//jouu+wytGjRAvv27cOSJUvwzTff+IZVX3bZZXjxxReRlpaGHj16YP369fjggw98w8JD0a9fPwDAH/7wB4wdOxYJCQm4/PLLfUFQYx588EGsWLECAwcOxG233Yb4+Hg888wzqK6uDjq3kNPpxL/+9S8UFxejZ8+emDhxIs466yz88MMPWL16NVJTU/Hmm282ev7rrrsOTz75JO6//3707t0b3bt3V+xv1qwZ/vSnP6GkpATXXHMNhg8fjg8//BAvvfQS/vznPyMjIyOk10kkLBNHghFRiHbt2iXdeuutUqdOnaTExESpWbNmUrdu3aRbbrlF2r59u++43r17S23btg36XIMHD5YyMzOlmpqaoEPPtf4+/PDDoM//97//XerWrZuUkJAgtWnTRrr11lulo0ePKo65+OKLpZ49ewY8dsKECVK7du0avyBS/UzJ//rXv6SLLrpISktLkxISEqR27dpJEydOVAxLP3r0qDRx4kSpVatWUnJysjR8+HDpm2++kdq1aydNmDDBd5x36PmmTZtUz/enP/1JOuussySn06kYhq42g7KarVu3SsOHD5eSk5OlpKQkaciQIdInn3yiOEZrBuVt27ZJo0ePllq2bCm53W6pXbt20rXXXiutXLkypGvl8Xik3NxcCYD04IMP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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 52
  },
  {
   "metadata": {},
   "cell_type": "code",
   "outputs": [],
   "execution_count": null,
   "source": "",
   "id": "36c1718e2b1ec6e"
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
